#pragma once

#include "public/build.h"
#include "core/noncopy.h"
#include "input_event.h"

#include <functional>

namespace renderit
{
	namespace client
	{
		class iwindow : public core::noncopy
		{
		public:
			virtual uint32 get_width() const { return 0; }
			virtual uint32 get_height() const { return 0; }
			virtual void * get_handle() const { return nullptr; }

		public:
			void set_event_listener(std::function<void(const input_event&)> listener) { listener_ = listener; }

		protected:
			std::function<void(const input_event&)> listener_;
		};
	}
}